package com.xueyi.system.deviceManager.domain.po;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import cn.hutool.json.JSONArray;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xueyi.common.core.web.tenant.base.TBaseEntity;
import com.xueyi.system.deviceManager.domain.dto.BaseDeviceDto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.xueyi.common.core.annotation.Excel;

/**
 * 设备信息 持久化对象
 *
 * @author zlf
 */
@TableName(value = "base_device", excludeProperty = {"sort"},autoResultMap = true)
public class BaseDevicePo extends TBaseEntity {

    private static final long serialVersionUID = 1L;

    /** 设备编码 */
@Excel(name = "设备编码")
@TableField("code")
private String code;

    /** 设备类型(1种植设施、2产地加工设施、3包装设施、4质量检验设施、5仓储设施、6自定义) */
@Excel(name = "设备类型(1种植设施、2产地加工设施、3包装设施、4质量检验设施、5仓储设施、6自定义)")
@TableField("type")
private String type;

    /** 设备图片 */
@Excel(name = "设备图片")
@TableField("image")
private String image;

    /** 设备品牌 */
@Excel(name = "设备品牌")
@TableField("brand")
private String brand;

    /** 设备价格 */
@Excel(name = "设备价格")
@TableField("price")
private BigDecimal price;

    /** 制造商 */
@Excel(name = "制造商")
@TableField("manufacturer")
private String manufacturer;

    /** 供应商 */
@Excel(name = "供应商")
@TableField("supplier")
private String supplier;

    /** 采购合同 */
@Excel(name = "采购合同")
@TableField("purchase_contract")
private String purchaseContract;

    /** 车间 */
@Excel(name = "车间")
@TableField("workshop")
private String workshop;

    /** 型号 */
@Excel(name = "型号")
@TableField("model")
private String model;

    /** 出厂日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Excel(name = "出厂日期", width = 30, dateFormat = "yyyy-MM-dd")
@TableField("production_date")
private LocalDateTime productionDate;

    /** 入厂日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Excel(name = "入厂日期", width = 30, dateFormat = "yyyy-MM-dd")
@TableField("admission_date")
private LocalDateTime admissionDate;

    /** 质保期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Excel(name = "质保期", width = 30, dateFormat = "yyyy-MM-dd")
@TableField("warranty_period")
private LocalDateTime warrantyPeriod;

    /** 规格描述 */
@Excel(name = "规格描述")
@TableField("specification_description")
private String specificationDescription;

    /** 附件 */
@TableField(value = "enclosure", typeHandler = FastjsonTypeHandler.class)
private JSONArray enclosure;

    /** 运行状态(1关机 2开机) */
@Excel(name = "运行状态(1关机 2开机)")
@TableField("working_status")
private String workingStatus;

    /** 通讯状态(1断开 2连接) */
@Excel(name = "通讯状态(1断开 2连接)")
@TableField("communication_status")
private String communicationStatus;

    /** 状态(1暂停 2正常) */
@Excel(name = "状态(1暂停 2正常)")
@TableField("status")
private String status;

public void setCode(String code) {
    this.code = code;
}

public String getCode() {
    return code;
}

public void setType(String type) {
    this.type = type;
}

public String getType() {
    return type;
}

public void setImage(String image) {
    this.image = image;
}

public String getImage() {
    return image;
}

public void setBrand(String brand) {
    this.brand = brand;
}

public String getBrand() {
    return brand;
}

public void setPrice(BigDecimal price) {
    this.price = price;
}

public BigDecimal getPrice() {
    return price;
}

public void setManufacturer(String manufacturer) {
    this.manufacturer = manufacturer;
}

public String getManufacturer() {
    return manufacturer;
}

public void setSupplier(String supplier) {
    this.supplier = supplier;
}

public String getSupplier() {
    return supplier;
}

public void setPurchaseContract(String purchaseContract) {
    this.purchaseContract = purchaseContract;
}

public String getPurchaseContract() {
    return purchaseContract;
}

public void setWorkshop(String workshop) {
    this.workshop = workshop;
}

public String getWorkshop() {
    return workshop;
}

public void setModel(String model) {
    this.model = model;
}

public String getModel() {
    return model;
}

public void setProductionDate(LocalDateTime productionDate) {
    this.productionDate = productionDate;
}

public LocalDateTime getProductionDate() {
    return productionDate;
}

public void setAdmissionDate(LocalDateTime admissionDate) {
    this.admissionDate = admissionDate;
}

public LocalDateTime getAdmissionDate() {
    return admissionDate;
}

public void setWarrantyPeriod(LocalDateTime warrantyPeriod) {
    this.warrantyPeriod = warrantyPeriod;
}

public LocalDateTime getWarrantyPeriod() {
    return warrantyPeriod;
}

public void setSpecificationDescription(String specificationDescription) {
    this.specificationDescription = specificationDescription;
}

public String getSpecificationDescription() {
    return specificationDescription;
}

public void setEnclosure(JSONArray enclosure) {
    this.enclosure = enclosure;
}

public JSONArray getEnclosure() {
    return enclosure;
}

public void setWorkingStatus(String workingStatus) {
    this.workingStatus = workingStatus;
}

public String getWorkingStatus() {
    return workingStatus;
}

public void setCommunicationStatus(String communicationStatus) {
    this.communicationStatus = communicationStatus;
}

public String getCommunicationStatus() {
    return communicationStatus;
}

@Override
public void setStatus(String status) {
    this.status = status;
}

@Override
public String getStatus() {
    return status;
}

}
